The present invention relates generally to computer aided design and computer aided machine (CAD/CAM) tools, and more specifically to positioning objects within CAD/CAM programs or environments.
Methods have previously been provided for drawing and resizing of objects in CAD/CAM programs. For example, when drawing an object on a display, a typical CAD/CAM program translates positioning signals and movements of a cursor on a display into the coordinate system of the program and into the scale of the program, (together "coordinate system"). An illustration of this is when the user clicks and drags a rectangle on the display, the rectangle may appear to be only 2 inches by 1 inch on the display, however, within the program's coordinate system the rectangle may represent a 20 foot by 10 foot room. Typically, as the user creates a rectangle with the cursor on the display, or resizes an existing rectangle with the cursor on the display, the program displays the current size of the rectangle within the program's coordinate system to the user. This size feedback allows the user to more quickly and more precisely define the sizes of objects in the CAD/CAM program.
Although there have been tools for aiding the user in sizing and resizing objects in a CAD/CAM environment, there have not been many tools for aiding the user in positioning objects relative to other objects. One method used to allow a user to position an object relative to an existing object is with coordinate key-ins from a keyboard or dialog boxes. Using this method, the user first defines a reference point, then keys-in an offset distance from the reference point, within the program's coordinate system, where the new object should be located, and then creates the new object.
FIG. 1A illustrates one process of positioning objects relative to a reference point. FIG. 1A includes a screen display 10 of typical CAD/CAM program. Screen display 10 includes object 15 having reference point 20 and cursor 25. Screen display 10 also includes window 30 having horizontal offset dialog box 35 and vertical offset dialog box 40 and object 45 having point 50.
As illustrated in FIG. 1A, typically the user uses cursor 25 to locate a reference point on an object, such as reference point 20 on object 15. Next, the user opens window such as window 30 that includes horizontal offset dialog box 35 and vertical offset dialog box 40. Using a keyboard, the user defines a horizontal offset value and vertical offset value from reference point 25 in the appropriate dialog box. The offset values are added to the coordinates of reference point 25, and the resulting point 50 for example is defined on the display. Once point 50 is defined, the user creates new objects, such as object 45 relative to point 50 as shown.
A drawback with this method is that the user must continually switch her hands back and forth between input devices and move her eyes back and forth between the input devices and the display. For example, the user initially uses the mouse to define the reference point, next the user uses the keyboard to enter the key-ins, and then the user returns to the mouse to define the object. This sort of back and forth movement reduces the user's productivity. Another drawback is that in some programs, the user is sometimes forced to memorize cryptic character combinations (for example, dx=5,2,2.0,1.2 etc . . . ) to accomplish this task.
Another method for aiding the user in positioning objects relative to other objects is with the use of construction lines or construction geometry. For example, to determine a horizontal offset and a vertical offset from a reference point, the user creates a temporary rectangle having dimensions equal to the horizontal offset and the vertical offset. After the temporary rectangle is drawn, the desired object is created relative to a point on the temporary rectangle. After the desired object is created, the temporary rectangle is deleted.
FIG. 1B illustrates a process of positioning objects relative to a reference point as just described. FIG. 1B includes a screen display 60 of typical CAD/CAM program. Screen display 60 includes object 65 having reference point 70 and cursor 75, temporary rectangle 80 having points 85 and 90, and object 95.
As illustrated in FIG. 1B, typically the user uses cursor 75 to locate a reference point related to, or on, an object, such as reference point 70 on object 65. Next, the user locates cursor 75 at reference point 70 and creates temporary rectangle 80. The user sets the horizontal size 86 and vertical size 87 of temporary rectangle 80 equal to the desired horizontal and vertical offset from reference point 70. Temporary rectangle 80 thus includes point 85 that is coincident with reference point 70, and a point 90 that defines a desired destination point. The user then creates object 95 or moves an existing object 95 so that object 95 has a point coincident with point 90, as illustrated, and then deletes temporary rectangle 80.
A drawback with this method is that the user must go through the exercise of creating construction lines or geometry and then when the user is done positioning objects, deleting the construction lines or geometry. Another drawback is that after the construction lines or geometry are deleted, there is no easy way to determine whether the offsets or the dimensions of the construction lines or geometry are correct without creating new construction lines or geometry, thus the placement of objects relative to reference points may be prone to error.
What is needed are methods that allow a user to quickly and precisely create and position objects relative to other objects in a CADICAM program enviromnent with reduced use of the keyboard and mouse, and without having the user take her eyes off the screen.